package com.ysx.oa.user.service;

import com.ysx.oa.role.bean.RoleBean;
import com.ysx.oa.role.bean.UserRoleBean;
import com.ysx.oa.user.bean.UserBean;
import com.ysx.oa.user.dto.UserDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * @Author: 周海燕
 * @Date: 2021/11/21 16:19
 */
public interface UserService {

    /**
     * 方法描述:注册
     *
     * @author: 周海燕
     * @date: 2021/11/21 16:32
     * @params: [userBean], [roleBean]=roleId
     * @returns:int
     */
    Integer register(UserBean userBean);


    /**
     * 方法描述:登录功能
     * 注1：根据用户输入账号密码查找用户id，并存储与session中
     *
     * @author: 周海燕
     * @date: 2021/11/22 1:32
     * @params: [userBean]=phone,password
     * @returns:java.lang.Integer
     */
    UserRoleBean login(UserBean userBean);


    /**
     * 根据用户id删除用户
     */
    Integer delete(UserBean userBean);

    /**
     * 查找所有用户信息
     *
     * @return
     */
    List<UserBean> selectAll();

    /**
     * 方法描述:通过userId查找user
     * @author: 周海燕
     * @date: 2021/11/24 22:19 [userId]
     */
    UserBean findUserByUserId(@Param("userId") Integer userId);


    /**
     * 方法描述:更新用户个人信息
     * @author: 周海燕
     * @date: 2021/11/25 9:30 [userBean] com.ysx.oa.user.bean.UserBean
     * user Bean=userId
     */
    UserDto updateUserInfo(UserDto userDto);


    /**
     * 方法描述:根据添加角色时间字段排序(升序)
     * @author: 周海燕
     * @date: 2021/11/25 23:44 [] java.util.List<com.ysx.oa.user.bean.UserBean>
     */
    List<UserBean> findAllUserOrderByLastUpdateTime();





}
